#pragma once
#include "CEventArgs.h"

class CRoutedEventArgs :
	public CEventArgs
{

public: 
	virtual ~CRoutedEventArgs();
	static HRESULT Create(CDependencyObject * * ppObject, CREATEPARAMETERS * pCreate);
	virtual XUINT32 GetTypeIndex() const;
	virtual XBOOL IsUserInitiated();
	virtual HRESULT SetValue(CDependencyProperty * pdp, CValue * pValue);
	virtual HRESULT GetValue(CDependencyProperty * pdp, CValue * pValue);
	virtual HRESULT OnManagedPeerCreated(XBOOL fIsCustomDOType, XBOOL fIsManagedPeerTaken);
	struct Xcp_IDependencyObject * m_pSource;
	XBOOL m_bHandled;
	XINT32 m_shift;
	XINT32 m_ctrl;
	XINT32 m_modifierKeys;

protected: 
	CRoutedEventArgs(CCoreServices * pCore);
private: 
	HRESULT ProcessSource();


};